// pages/my/my.js
const request = require('../../utils/request')

Page({
  data: {
    userInfo: null,
    isLogin: false,
    menuList: [
      { id: 1, title: '我的挂号', icon: '/pages/images/appointment_icon.png', url: '/pages/appointmentRecord/appointmentRecord' },
      { id: 2, title: '我的处方', icon: '/pages/images/prescription_icon.png', url: '/pages/prescriptionRecord/prescriptionRecord' },
      { id: 3, title: '健康档案', icon: '/pages/images/record_icon.png', url: '/pages/healthRecord/healthRecord' },
      {id: 5, title: '医生回复', icon: '/pages/images/message_icon.png', url: '/pages/doctorReply/doctorReply'},
      { id: 4, title: '意见反馈', icon: '/pages/images/feedback_icon.png', url: '/pages/feedback/feedback' }
    ]
  },
  
  onLoad() {
    // 检查登录状态
    this.checkLoginStatus()
  },
  
  onShow() {
    // 每次显示页面时检查登录状态
    this.checkLoginStatus()
  },
  
  // 检查登录状态
  checkLoginStatus() {
    const token = wx.getStorageSync('token')
    if (token) {
      getApp().globalData.token = token
      getApp().globalData.isLogin = true
      
      this.setData({ isLogin: true })
      
      // 获取用户信息
      this.getUserInfo()
    } else {
      this.setData({ isLogin: false, userInfo: null })
    }
  },
  
  // 获取用户信息
  getUserInfo() {
    // 显示加载提示
    wx.showLoading({
      title: '加载中',
      mask: true
    })
    
    request.get('/student/info').then(res => {
      // 隐藏加载提示
      wx.hideLoading()
      
      if (res.code === 0 && res.data) {
        this.setData({
          userInfo: res.data
        })
      } else {
        console.error('获取用户信息失败', res.message)
        this.handleLoginFailure()
      }
    }).catch(err => {
      // 隐藏加载提示
      wx.hideLoading()
      
      console.error('获取用户信息失败', err)
      this.handleLoginFailure()
    })
  },
  
  // 处理登录失效
  handleLoginFailure() {
    // 清除token
    wx.removeStorageSync('token')
    getApp().globalData.token = ''
    getApp().globalData.isLogin = false
    
    this.setData({
      isLogin: false,
      userInfo: null
    })
    
    // 显示提示
    wx.showToast({
      title: '登录已过期，请重新登录',
      icon: 'none',
      duration: 2000
    })
  },
  
  // 跳转到登录页面
  goToLogin() {
    // 先获取最新的登录状态
    getApp().login()
  },
  
  // 退出登录
  logout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除token
          wx.removeStorageSync('token')
          getApp().globalData.token = ''
          getApp().globalData.isLogin = false
          
          this.setData({
            isLogin: false,
            userInfo: null
          })
          
          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          })
        }
      }
    })
  },
  
  // 跳转到菜单对应的页面
  goToPage(e) {
    if (!this.data.isLogin) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      })
      return
    }
    
    const url = e.currentTarget.dataset.url
    wx.navigateTo({ url })
  }
}) 